package com.ruoyi.pg.service;

import com.ruoyi.pg.domain.Indicator;
import com.ruoyi.pg.domain.PgTreeSelect;

import java.util.List;

/**
 * 指标点Service接口
 * 
 * @author ruoyi
 * @date 2025-06-07
 */
public interface IIndicatorService 
{
    /**
     * 查询指标点
     * 
     * @param indicatorId 指标点主键
     * @return 指标点
     */
    public Indicator selectIndicatorByIndicatorId(Long indicatorId);

    /**
     * 查询指标点列表
     * 
     * @param indicator 指标点
     * @return 指标点集合
     */
    public List<Indicator> selectIndicatorList(Indicator indicator);

    /**
     * 新增指标点
     * 
     * @param indicator 指标点
     * @return 结果
     */
    public int insertIndicator(Indicator indicator);

    /**
     * 修改指标点
     * 
     * @param indicator 指标点
     * @return 结果
     */
    public int updateIndicator(Indicator indicator);

    /**
     * 批量删除指标点
     * 
     * @param indicatorIds 需要删除的指标点主键集合
     * @return 结果
     */
    public int deleteIndicatorByIndicatorIds(Long[] indicatorIds);

    /**
     * 删除指标点信息
     * 
     * @param indicatorId 指标点主键
     * @return 结果
     */
    public int deleteIndicatorByIndicatorId(Long indicatorId);

    /**
     * 获取指标树列表
     */
    public List<PgTreeSelect> selectIndicatorTreeList(Indicator indicator);

    /**
     * 构建前端所需要树结构
     *
     * @param indicators 指标列表
     * @return 树结构列表
     */
    public List<Indicator> buildIndicatorTree(List<Indicator> indicators);

    /**
     * 构建前端所需要下拉指标结构
     *
     * @param indicators 指标列表
     * @return 下拉树结构列表
     */
    public List<PgTreeSelect> buildIndicatorTreeSelect(List<Indicator> indicators);
}
